package com.itheima.principles.demo2.after;

/**
 * 里氏代换原则：
 * 任何基类可以出现的地方，子类一定可以出现。
 * 子类可以扩展父类的功能，但不能改变父类原有的功能。
 */
public class TestDemo {

    public static void main(String[] args) {
        {
            // 创建长方形对象
            Rectangle rectangle = new Rectangle();
            // 设置长和宽
            rectangle.setLength(20);
            rectangle.setWidth(10);
            // 调用resize方法进行扩宽
            resize(rectangle);
            // 打印长和宽
            printLengthAndWidth(rectangle);
        }
        System.out.println("========================");
        {
            // 创建正方形对象
            Square square = new Square();
            // 设置边长
            square.setSide(10);
            // 打印长和宽
            printLengthAndWidth(square);
        }
    }

    // 扩宽方法
    public static void resize(Rectangle rectangle) {
        // 判断宽如果比长小，进行扩宽的操作
        while (rectangle.getWidth() <= rectangle.getLength()) {
            rectangle.setWidth(rectangle.getWidth() + 1);
        }
    }

    // 打印长和宽
    public static void printLengthAndWidth(Quadrilateral quadrilateral) {
        System.out.println("【长】" + quadrilateral.getLength());
        System.out.println("【宽】" + quadrilateral.getWidth());
    }
}
